<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EGCS 1.1 New Features</title>
<link rel="stylesheet" type="text/css" href="https://gcc.gnu.org/gcc.css" />
</head>

<body>
<h1>EGCS 1.1 new features</h1>

<ul>
  <li>Integrated GNU Fortran (<code>g77</code>) compiler and runtime library
  with improvements, based on <code>g77</code> version 0.5.23.</li>
  <li>Vast improvements in the C++ compiler; so many they have 
  <a href="c++features.html">page of their own!</a></li>
  <li>Compiler implements <a href="../news/gcse.html">global common subexpression
  elimination and global copy/constant propagation.</a></li>
  <li>More major improvements in the <a href="../news/alias.html">alias analysis
  code</a>.</li>
  <li>More major improvements in the exception handling code to improve
  performance, lower static overhead and provide the infrastructure for future
  improvements.</li>
  <li>The infamous /tmp symlink race security problems have been fixed.</li>
  <li>The regmove optimization pass has been nearly completely rewritten
  to improve performance of generated code.</li>
  <li>The compiler now recomputes register usage information before local
  register allocation.  By providing more accurate information to the
  priority based allocator, we get better register allocation.</li>
  <li>The register reloading phase of the compiler optimizes spill code
  much better than in previous releases.</li>
  <li>Some bad interactions between the register allocator and instruction
  scheduler have been fixed, resulting in much better code for certain
  programs.  Additionally, we have tuned the scheduler in various ways to
  improve performance of generated code for some architectures.</li>
  <li>The compiler's branch shortening algorithms have been significantly
  improved to work better on targets which align jump targets.</li>
  <li>The compiler now supports -Os to prefer optimizing for code space
  over optimizing for code speed.</li>
  <li>The compiler will now totally eliminate library calls which compute
  constant values.  This primarily helps targets with no integer div/mul
  support and targets without floating point support.</li>
  <li>The compiler now supports an extensive "--help" option.</li>
  <li>cpplib has been greatly improved and may be suitable for limited 
  use.</li>
  <li>Memory footprint for the compiler has been significantly reduced
  for some pathological cases.</li>
  <li>The time to build EGCS has been improved for certain targets
  (particularly the alpha and mips platforms).</li>
  <li>Many infrastructure improvements throughout the compiler, plus the
  usual mountain of bugfixes and minor improvements.</li>
  <li>Target dependent improvements:
     <ul>
 	<li> SPARC port now includes V8 plus and V9 support as well as
	performance tuning for Ultra class machines.  The SPARC port now
	uses the Haifa scheduler.</li>
	<li> Alpha port has been tuned for the EV6 processor and has an
	optimized expansion of memcpy/bzero.  The Alpha port now uses
	the Haifa scheduler.</li>
	<li> RS6000/PowerPC: support for the Power64
	architecture and AIX 4.3.  The RS6000/PowerPC port now
	uses the Haifa scheduler.</li>
	<li> x86: Alignment of static store data and jump targets is per
	Intel recommendations now.  Various improvements throughout the
	x86 port to improve performance on Pentium processors (including
        improved epilogue sequences for Pentium chips and backend
        improvements which should help register allocation on all x86
        variants.  Conditional move support has been fixed and enabled for
        PPro processors.
	The x86 port also better supports 64bit operations now.
        Unixware 7, a System V Release 5 target, is now supported and
        SCO OpenServer targets can support GAS.</li>
	<li> MIPS has improved multiply/multiply-add support and now includes
	mips16 ISA support.</li>
	<li> M68k has many micro-optimizations and Coldfire fixes.</li>
     </ul></li>
  <li>Core compiler is based on the GCC development tree from June 9, 1998,
  so we have all of the <a href="../egcs-1.0/features-2.8.html">features
  found in GCC 2.8</a>.</li>
</ul>

</body>
</html>
